package proxy;

import common.exception.MagicRpcException;
import common.model.Invoker;
import common.model.MagicUrl;

public interface ProxyFactory {

  <T> T getProxy(Invoker<T> invoker) throws MagicRpcException;

  <T> T getProxy(Invoker<T> invoker, boolean generic) throws MagicRpcException;

  <T> Invoker<T> getInvoker(T proxy, Class<T> type, MagicUrl url) throws MagicRpcException;

}
